#pragma once
// 注册nvs命令组
void register_nvs();



//nvs命令函数
static void register_read_nvs();        //读取命令
//读取项目参数
static struct {
	struct arg_str *name;		//-n key空间，默认esp32
	struct arg_str *n32;		//-i int32 key
	struct arg_str *str;		//-s string key
	struct arg_end *end;
} nvs_read_arg;


static void register_write_nvs();       //写入命令
//写入项目参数
static struct {
	struct arg_str *name;		//-n key空间，默认esp32
	struct arg_str *key;		//-k  key
	struct arg_str *svalue;		//-s  str value
	struct arg_int *ivalue;		//-i str value
	struct arg_end *end;
} nvs_write_arg;

static void register_stats_nvs();       //状态命令
//状态项目参数
static struct {
	struct arg_str *name;		//-n key空间，默认nvs
    struct arg_lit *all;        //-a 所有条目
	struct arg_end *end;
} nvs_st_arg;

static void register_del_nvs();         //删除命令
//删除项目参数
static struct {
	struct arg_str *name;		//-n key空间，默认esp32
	struct arg_str *key;		//-k  key
    struct arg_lit *all;        //-a 所有条目
	struct arg_end *end;
} nvs_del_arg;

const char * read_nvs_str(const char * name,const char * key, uint8_t * len);

uint8_t write_nvs_str(const char * name,const char * key, const char * value);
